!function(e){"use strict";var t={init:function(a){var r=this;return r.data("jqv")&&null!=r.data("jqv")||(a=t._saveOptions(r,a),e(document).on("click",".formError",(function(){e(this).fadeOut(150,(function(){e(this).parent(".formErrorOuter").remove(),e(this).remove()}))}))),this},attach:function(a){var r,i=this;return(r=a?t._saveOptions(i,a):i.data("jqv")).validateAttribute=i.find("[data-validation-engine*=validate]").length?"data-validation-engine":"class",r.binded&&(i.on(r.validationEventTrigger,"["+r.validateAttribute+"*=validate]:not([type=checkbox]):not([type=radio]):not(.datepicker)",t._onFieldEvent),i.on("click","["+r.validateAttribute+"*=validate][type=checkbox],["+r.validateAttribute+"*=validate][type=radio]",t._onFieldEvent),i.on(r.validationEventTrigger,"["+r.validateAttribute+"*=validate][class*=datepicker]",{delay:300},t._onFieldEvent)),r.autoPositionUpdate&&e(window).bind("resize",{noAnimation:!0,formElem:i},t.updatePromptsPosition),i.on("click","a[data-validation-engine-skip], a[class*='validate-skip'], button[data-validation-engine-skip], button[class*='validate-skip'], input[data-validation-engine-skip], input[class*='validate-skip']",t._submitButtonClick),i.removeData("jqv_submitButton"),i.on("submit",t._onSubmitEvent),this},detach:function(){var a=this,r=a.data("jqv");return a.find("["+r.validateAttribute+"*=validate]").not("[type=checkbox]").off(r.validationEventTrigger,t._onFieldEvent),a.find("["+r.validateAttribute+"*=validate][type=checkbox],[class*=validate][type=radio]").off("click",t._onFieldEvent),a.off("submit",t._onSubmitEvent),a.removeData("jqv"),a.off("click","a[data-validation-engine-skip], a[class*='validate-skip'], button[data-validation-engine-skip], button[class*='validate-skip'], input[data-validation-engine-skip], input[class*='validate-skip']",t._submitButtonClick),a.removeData("jqv_submitButton"),r.autoPositionUpdate&&e(window).off("resize",t.updatePromptsPosition),this},validate:function(){var a=e(this),r=null;if(a.is("form")||a.hasClass("validationEngineContainer")){if(a.hasClass("validating"))return!1;a.addClass("validating");var i=a.data("jqv");r=t._validateFields(this);setTimeout((function(){a.removeClass("validating")}),100),r&&i.onSuccess?i.onSuccess():!r&&i.onFailure&&i.onFailure()}else if(a.is("form")||a.hasClass("validationEngineContainer"))a.removeClass("validating");else{var o=a.closest("form, .validationEngineContainer");i=o.data("jqv")?o.data("jqv"):e.validationEngine.defaults;(r=t._validateField(a,i))&&i.onFieldSuccess?i.onFieldSuccess():i.onFieldFailure&&i.InvalidFields.length>0&&i.onFieldFailure()}return i.onValidationComplete?!!i.onValidationComplete(o,r):r},updatePromptsPosition:function(a){if(a&&this==window)var r=a.data.formElem,i=a.data.noAnimation;else r=e(this.closest("form, .validationEngineContainer"));var o=r.data("jqv");return r.find("["+o.validateAttribute+"*=validate]").not(":disabled").each((function(){var a=e(this);o.prettySelect&&a.is(":hidden")&&(a=r.find("#"+o.usePrefix+a.attr("id")+o.useSuffix));var s=t._getPrompt(a),n=e(s).find(".formErrorContent").html();s&&t._updatePrompt(a,e(s),n,void 0,!1,o,i)})),this},showPrompt:function(e,a,r,i){var o=this.closest("form, .validationEngineContainer").data("jqv");return o||(o=t._saveOptions(this,o)),r&&(o.promptPosition=r),o.showArrow=1==i,t._showPrompt(this,e,a,!1,o),this},hide:function(){var a,r=e(this).closest("form, .validationEngineContainer").data("jqv"),i=r&&r.fadeDuration?r.fadeDuration:.3;return a=e(this).is("form")||e(this).hasClass("validationEngineContainer")?"parentForm"+t._getClassName(e(this).attr("id")):t._getClassName(e(this).attr("id"))+"formError",e("."+a).fadeTo(i,.3,(function(){e(this).parent(".formErrorOuter").remove(),e(this).remove()})),this},hideAll:function(){var t=this.data("jqv"),a=t?t.fadeDuration:300;return e(".formError").fadeTo(a,300,(function(){e(this).parent(".formErrorOuter").remove(),e(this).remove()})),this},_onFieldEvent:function(a){var r=e(this),i=r.closest("form, .validationEngineContainer").data("jqv");i.eventTrigger="field",window.setTimeout((function(){t._validateField(r,i),0==i.InvalidFields.length&&i.onFieldSuccess?i.onFieldSuccess():i.InvalidFields.length>0&&i.onFieldFailure&&i.onFieldFailure()}),a.data?a.data.delay:0)},_onSubmitEvent:function(){var a=e(this),r=a.data("jqv");if(a.data("jqv_submitButton")){var i=e("#"+a.data("jqv_submitButton"));if(i&&i.length>0&&(i.hasClass("validate-skip")||"true"==i.attr("data-validation-engine-skip")))return!0}r.eventTrigger="submit";var o=t._validateFields(a);return o&&r.ajaxFormValidation?(t._validateFormWithAjax(a,r),!1):r.onValidationComplete?!!r.onValidationComplete(a,o):o},_checkAjaxStatus:function(t){var a=!0;return e.each(t.ajaxValidCache,(function(e,t){if(!t)return a=!1,!1})),a},_checkAjaxFieldStatus:function(e,t){return 1==t.ajaxValidCache[e]},_validateFields:function(a){var r=a.data("jqv"),i=!1;a.trigger("jqv.form.validating");var o=null;if(a.find("["+r.validateAttribute+"*=validate]").not(":disabled").each((function(){var s=e(this),n=[];if(e.inArray(s.attr("name"),n)<0){if((i|=t._validateField(s,r))&&null==o&&(s.is(":hidden")&&r.prettySelect?o=s=a.find("#"+r.usePrefix+t._jqSelector(s.attr("id"))+r.useSuffix):(s.data("jqv-prompt-at")instanceof jQuery?s=s.data("jqv-prompt-at"):s.data("jqv-prompt-at")&&(s=e(s.data("jqv-prompt-at"))),o=s)),r.doNotShowAllErrosOnSubmit)return!1;if(n.push(s.attr("name")),1==r.showOneMessage&&i)return!1}})),a.trigger("jqv.form.result",[i]),i){if(r.scroll){var s=o.offset().top,n=o.offset().left,l=r.promptPosition;if("string"==typeof l&&-1!=l.indexOf(":")&&(l=l.substring(0,l.indexOf(":"))),"bottomRight"!=l&&"bottomLeft"!=l){var d=t._getPrompt(o);d&&(s=d.offset().top)}if(r.scrollOffset&&(s-=r.scrollOffset),r.isOverflown){var u=e(r.overflownDIV);if(!u.length)return!1;s+=u.scrollTop()+-parseInt(u.offset().top)-5,e(r.overflownDIV+":not(:animated)").animate({scrollTop:s},1100,(function(){r.focusFirstField&&o.focus()}))}else e("html, body").animate({scrollTop:s},1100,(function(){r.focusFirstField&&o.focus()})),e("html, body").animate({scrollLeft:n},1100)}else r.focusFirstField&&o.focus();return!1}return!0},_validateFormWithAjax:function(a,r){var i=a.serialize(),o=r.ajaxFormValidationMethod?r.ajaxFormValidationMethod:"GET",s=r.ajaxFormValidationURL?r.ajaxFormValidationURL:a.attr("action"),n=r.dataType?r.dataType:"json";e.ajax({type:o,url:s,cache:!1,dataType:n,data:i,form:a,methods:t,options:r,beforeSend:function(){return r.onBeforeAjaxFormValidation(a,r)},error:function(e,a){t._ajaxError(e,a)},success:function(i){if("json"==n&&!0!==i){for(var o=!1,s=0;s0&&(f=!0);for(var v=e(a.closest("form, .validationEngineContainer")),p=0;p=r.maxErrorsPerField){if(!c){var g=e.inArray("required",n);c=-1!=g&&g>=p}break}var h=void 0;switch(n[p]){case"required":c=!0,h=t._getErrorMessage(v,a,n[p],n,p,r,t._required);break;case"custom":h=t._getErrorMessage(v,a,n[p],n,p,r,t._custom);break;case"groupRequired":var x="["+r.validateAttribute+"*="+n[p+1]+"]",_=v.find(x).eq(0);_[0]!=a[0]&&(t._validateField(_,r,i),r.showArrow=!0),(h=t._getErrorMessage(v,a,n[p],n,p,r,t._groupRequired))&&(c=!0),r.showArrow=!1;break;case"ajax":(h=t._ajax(a,n,p,r))&&(u="load");break;case"minSize":h=t._getErrorMessage(v,a,n[p],n,p,r,t._minSize);break;case"maxSize":h=t._getErrorMessage(v,a,n[p],n,p,r,t._maxSize);break;case"min":h=t._getErrorMessage(v,a,n[p],n,p,r,t._min);break;case"max":h=t._getErrorMessage(v,a,n[p],n,p,r,t._max);break;case"past":h=t._getErrorMessage(v,a,n[p],n,p,r,t._past);break;case"future":h=t._getErrorMessage(v,a,n[p],n,p,r,t._future);break;case"dateRange":x="["+r.validateAttribute+"*="+n[p+1]+"]";r.firstOfGroup=v.find(x).eq(0),r.secondOfGroup=v.find(x).eq(1),(r.firstOfGroup[0].value||r.secondOfGroup[0].value)&&(h=t._getErrorMessage(v,a,n[p],n,p,r,t._dateRange)),h&&(c=!0),r.showArrow=!1;break;case"dateTimeRange":x="["+r.validateAttribute+"*="+n[p+1]+"]";r.firstOfGroup=v.find(x).eq(0),r.secondOfGroup=v.find(x).eq(1),(r.firstOfGroup[0].value||r.secondOfGroup[0].value)&&(h=t._getErrorMessage(v,a,n[p],n,p,r,t._dateTimeRange)),h&&(c=!0),r.showArrow=!1;break;case"maxCheckbox":a=e(v.find("input[name='"+l+"']")),h=t._getErrorMessage(v,a,n[p],n,p,r,t._maxCheckbox);break;case"minCheckbox":a=e(v.find("input[name='"+l+"']")),h=t._getErrorMessage(v,a,n[p],n,p,r,t._minCheckbox);break;case"equals":h=t._getErrorMessage(v,a,n[p],n,p,r,t._equals);break;case"funcCall":h=t._getErrorMessage(v,a,n[p],n,p,r,t._funcCall);break;case"creditCard":h=t._getErrorMessage(v,a,n[p],n,p,r,t._creditCard);break;case"condRequired":void 0!==(h=t._getErrorMessage(v,a,n[p],n,p,r,t._condRequired))&&(c=!0)}var C=!1;if("object"==typeof h)switch(h.status){case"_break":C=!0;break;case"_error":h=h.message;break;case"_error_no_prompt":return!0}if(C)break;"string"==typeof h&&(d+=h+"
",r.isError=!0,m++)}!c&&!a.val()&&a.val().length<1&&(r.isError=!1);var b=a.prop("type"),E=a.data("promptPosition")||r.promptPosition;("radio"==b||"checkbox"==b)&&v.find("input[name='"+l+"']").size()>1&&(a=e("inline"===E?v.find("input[name='"+l+"'][type!=hidden]:last"):v.find("input[name='"+l+"'][type!=hidden]:first")),r.showArrow=!1),a.is(":hidden")&&r.prettySelect&&(a=v.find("#"+r.usePrefix+t._jqSelector(a.attr("id"))+r.useSuffix)),r.isError&&r.showPrompts?t._showPrompt(a,d,u,!1,r):t._closePrompt(a),a.trigger("jqv.field.result",[a,r.isError,d]);var T=e.inArray(a[0],r.InvalidFields);return-1==T?r.isError&&r.InvalidFields.push(a[0]):r.isError||r.InvalidFields.splice(T,1),t._handleStatusCssClasses(a,r),r.isError&&r.onFieldFailure&&r.onFieldFailure(a),!r.isError&&r.onFieldSuccess&&r.onFieldSuccess(a),r.isError},_handleStatusCssClasses:function(e,t){t.addSuccessCssClassToField&&e.removeClass(t.addSuccessCssClassToField),t.addFailureCssClassToField&&e.removeClass(t.addFailureCssClassToField),t.addSuccessCssClassToField&&!t.isError&&e.addClass(t.addSuccessCssClassToField),t.addFailureCssClassToField&&t.isError&&e.addClass(t.addFailureCssClassToField)},_getErrorMessage:function(a,r,i,o,s,n,l){var d=jQuery.inArray(i,o);"custom"!==i&&"funcCall"!==i||(i=i+"["+o[d+1]+"]",delete o[d]);var u,c=i,f=(r.attr("data-validation-engine")?r.attr("data-validation-engine"):r.attr("class")).split(" ");if(null!=(u="future"==i||"past"==i||"maxCheckbox"==i||"minCheckbox"==i?l(a,r,o,s,n):l(r,o,s,n))){var v=t._getCustomErrorMessage(e(r),f,c,n);v&&(u=v)}return u},_getCustomErrorMessage:function(e,a,r,i){var o=!1,s=/^custom\[.*\]$/.test(r)?t._validityProp.custom:t._validityProp[r];if(null!=s&&null!=(o=e.attr("data-errormessage-"+s)))return o;if(null!=(o=e.attr("data-errormessage")))return o;var n="#"+e.attr("id");if(void 0!==i.custom_error_messages[n]&&void 0!==i.custom_error_messages[n][r])o=i.custom_error_messages[n][r].message;else if(a.length>0)for(var l=0;l0;l++){var d="."+a[l];if(void 0!==i.custom_error_messages[d]&&void 0!==i.custom_error_messages[d][r]){o=i.custom_error_messages[d][r].message;break}}return o||void 0===i.custom_error_messages[r]||void 0===i.custom_error_messages[r].message||(o=i.custom_error_messages[r].message),o},_validityProp:{required:"value-missing",custom:"custom-error",groupRequired:"value-missing",ajax:"custom-error",minSize:"range-underflow",maxSize:"range-overflow",min:"range-underflow",max:"range-overflow",past:"type-mismatch",future:"type-mismatch",dateRange:"type-mismatch",dateTimeRange:"type-mismatch",maxCheckbox:"range-overflow",minCheckbox:"range-underflow",equals:"pattern-mismatch",funcCall:"custom-error",creditCard:"pattern-mismatch",condRequired:"value-missing"},_required:function(t,a,r,i,o){switch(t.prop("type")){case"text":case"password":case"textarea":case"file":case"select-one":case"select-multiple":default:var s=e.trim(t.val()),n=e.trim(t.attr("data-validation-placeholder")),l=e.trim(t.attr("placeholder"));if(!s||n&&s==n||l&&s==l)return i.allrules[a[r]].alertText;break;case"radio":case"checkbox":if(o){if(!t.attr("checked"))return i.allrules[a[r]].alertTextCheckboxMultiple;break}var d=t.closest("form, .validationEngineContainer"),u=t.attr("name");if(0==d.find("input[name='"+u+"']:checked").size())return 1==d.find("input[name='"+u+"']:visible").size()?i.allrules[a[r]].alertTextCheckboxe:i.allrules[a[r]].alertTextCheckboxMultiple}},_groupRequired:function(a,r,i,o){var s="["+o.validateAttribute+"*="+r[i+1]+"]",n=!1;if(a.closest("form, .validationEngineContainer").find(s).each((function(){if(!t._required(e(this),r,i,o))return n=!0,!1})),!n)return o.allrules[r[i]].alertText},_custom:function(e,t,a,r){var i,o=t[a+1],s=r.allrules[o];if(s)if(s.regex){var n=s.regex;if(!n)return void alert("jqv:custom regex not found - "+o);if(!new RegExp(n).test(e.val()))return r.allrules[o].alertText}else{if(!s.func)return void alert("jqv:custom type not allowed "+o);if("function"!=typeof(i=s.func))return void alert("jqv:custom parameter 'function' is no function - "+o);if(!i(e,t,a,r))return r.allrules[o].alertText}else alert("jqv:custom rule not found - "+o)},_funcCall:function(e,t,a,r){var i,o=t[a+1];if(o.indexOf(".")>-1){for(var s=o.split("."),n=window;s.length;)n=n[s.shift()];i=n}else i=window[o]||r.customFunctions[o];if("function"==typeof i)return i(e,t,a,r)},_equals:function(t,a,r,i){var o=a[r+1];if(t.val()!=e("#"+o).val())return i.allrules.equals.alertText},_maxSize:function(e,t,a,r){var i=t[a+1];if(e.val().length>i){var o=r.allrules.maxSize;return o.alertText+i+o.alertText2}},_minSize:function(e,t,a,r){var i=t[a+1];if(e.val().lengthi){var o=r.allrules.max;return o.alertText2?o.alertText+i+o.alertText2:o.alertText+i}},_past:function(a,r,i,o,s){var n,l=i[o+1],d=e(a.find("input[name='"+l.replace(/^#+/,"")+"']"));if("now"==l.toLowerCase())n=new Date;else if(null!=d.val()){if(d.is(":disabled"))return;n=t._parseDate(d.val())}else n=t._parseDate(l);if(t._parseDate(r.val())>n){var u=s.allrules.past;return u.alertText2?u.alertText+t._dateToString(n)+u.alertText2:u.alertText+t._dateToString(n)}},_future:function(a,r,i,o,s){var n,l=i[o+1],d=e(a.find("input[name='"+l.replace(/^#+/,"")+"']"));if("now"==l.toLowerCase())n=new Date;else if(null!=d.val()){if(d.is(":disabled"))return;n=t._parseDate(d.val())}else n=t._parseDate(l);if(t._parseDate(r.val())o)return i.showArrow=!1,i.allrules.maxCheckbox.alertText2?i.allrules.maxCheckbox.alertText+" "+o+" "+i.allrules.maxCheckbox.alertText2:i.allrules.maxCheckbox.alertText},_minCheckbox:function(e,t,a,r,i){var o=a[r+1],s=t.attr("name");if(e.find("input[name='"+s+"']:checked").size()=14&&s<=16&&parseInt(o)>0){var n,l=0,d=(a=s-1,1),u=new String;do{n=parseInt(o.charAt(a)),u+=d++%2==0?2*n:n}while(--a>=0);for(a=0;a");switch(n.addClass(t._getClassName(a.attr("id"))+"formError"),n.addClass("parentForm"+t._getClassName(a.closest("form, .validationEngineContainer").attr("id"))),n.addClass("formError"),i){case"pass":n.addClass("greenPopup");break;case"load":n.addClass("blackPopup")}o&&n.addClass("ajaxed");e("
").addClass("formErrorContent").html(r).appendTo(n);var l=a.data("promptPosition")||s.promptPosition;if(s.showArrow){var d=e("
").addClass("formErrorArrow");if("string"==typeof l)-1!=(f=l.indexOf(":"))&&(l=l.substring(0,f));switch(l){case"bottomLeft":case"bottomRight":n.find(".formErrorContent").before(d),d.addClass("formErrorArrowBottom").html('
\x3c!-- --\x3e
\x3c!-- --\x3e
\x3c!-- --\x3e
\x3c!-- --\x3e
\x3c!-- --\x3e
\x3c!-- --\x3e
\x3c!-- --\x3e
\x3c!-- --\x3e
\x3c!-- --\x3e
\x3c!-- --\x3e
');break;case"topLeft":case"topRight":d.html('
\x3c!-- --\x3e
\x3c!-- --\x3e
\x3c!-- --\x3e
\x3c!-- --\x3e
\x3c!-- --\x3e
\x3c!-- --\x3e
\x3c!-- --\x3e
\x3c!-- --\x3e
\x3c!-- --\x3e
\x3c!-- --\x3e
'),n.append(d)}}s.addPromptClass&&n.addClass(s.addPromptClass);var u=a.attr("data-required-class");if(void 0!==u)n.addClass(u);else if(s.prettySelect&&e("#"+a.attr("id")).next().is("select")){var c=e("#"+a.attr("id").substr(s.usePrefix.length).substring(s.useSuffix.length)).attr("data-required-class");void 0!==c&&n.addClass(c)}n.css({opacity:0}),"inline"===l?(n.addClass("inline"),void 0!==a.attr("data-prompt-target")&&e("#"+a.attr("data-prompt-target")).length>0?n.appendTo(e("#"+a.attr("data-prompt-target"))):a.after(n)):a.before(n);var f=t._calculatePosition(a,n,s);return n.css({position:"inline"===l?"relative":"absolute",top:f.callerTopPosition,left:f.callerleftPosition,marginTop:f.marginTopSize,opacity:0}).data("callerField",a),s.autoHidePrompt&&setTimeout((function(){n.animate({opacity:0},(function(){n.closest(".formErrorOuter").remove(),n.remove()}))}),s.autoHideDelay),n.animate({opacity:.87})},_updatePrompt:function(e,a,r,i,o,s,n){if(a){void 0!==i&&("pass"==i?a.addClass("greenPopup"):a.removeClass("greenPopup"),"load"==i?a.addClass("blackPopup"):a.removeClass("blackPopup")),o?a.addClass("ajaxed"):a.removeClass("ajaxed"),a.find(".formErrorContent").html(r);var l=t._calculatePosition(e,a,s),d={top:l.callerTopPosition,left:l.callerleftPosition,marginTop:l.marginTopSize};n?a.css(d):a.animate(d)}},_closePrompt:function(e){var a=t._getPrompt(e);a&&a.fadeTo("fast",0,(function(){a.parent(".formErrorOuter").remove(),a.remove()}))},closePrompt:function(e){return t._closePrompt(e)},_getPrompt:function(a){var r=e(a).closest("form, .validationEngineContainer").attr("id"),i=t._getClassName(a.attr("id"))+"formError",o=e("."+t._escapeExpression(i)+".parentForm"+t._getClassName(r))[0];if(o)return e(o)},_escapeExpression:function(e){return e.replace(/([#;&,\.\+\*\~':"\!\^$\[\]\(\)=>\|])/g,"\\$1")},isRTL:function(t){var a=e(document),r=e("body"),i=t&&t.hasClass("rtl")||t&&"rtl"===(t.attr("dir")||"").toLowerCase()||a.hasClass("rtl")||"rtl"===(a.attr("dir")||"").toLowerCase()||r.hasClass("rtl")||"rtl"===(r.attr("dir")||"").toLowerCase();return Boolean(i)},_calculatePosition:function(e,t,a){var r,i,o,s=e.width(),n=e.position().left,l=e.position().top;e.height();r=i=0,o=-t.height();var d=e.data("promptPosition")||a.promptPosition,u="",c="",f=0,v=0;switch("string"==typeof d&&-1!=d.indexOf(":")&&(u=d.substring(d.indexOf(":")+1),d=d.substring(0,d.indexOf(":")),-1!=u.indexOf(",")&&(c=u.substring(u.indexOf(",")+1),u=u.substring(0,u.indexOf(",")),v=parseInt(c),isNaN(v)&&(v=0)),f=parseInt(u),isNaN(u)&&(u=0)),d){default:case"topRight":i+=n+s-30,r+=l;break;case"topLeft":r+=l,i+=n;break;case"centerRight":r=l+4,o=0,i=n+e.outerWidth(!0)+5;break;case"centerLeft":i=n-(t.width()+2),r=l+4,o=0;break;case"bottomLeft":r=l+e.height()+5,o=0,i=n;break;case"bottomRight":i=n+s-30,r=l+e.height()+5,o=0;break;case"inline":i=0,r=0,o=0}return{callerTopPosition:(r+=v)+"px",callerleftPosition:(i+=f)+"px",marginTopSize:o+"px"}},_saveOptions:function(t,a){if(e.validationEngineLanguage)var r=e.validationEngineLanguage.allRules;else e.error("jQuery.validationEngine rules are not loaded, plz add localization files to the page");e.validationEngine.defaults.allrules=r;var i=e.extend(!0,{},e.validationEngine.defaults,a);return t.data("jqv",i),i},_getClassName:function(e){if(e)return e.replace(/:/g,"_").replace(/\./g,"_")},_jqSelector:function(e){return e.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g,"\\$1")},_condRequired:function(e,a,r,i){var o,s;for(o=r+1;o